<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:opf="http://www.idpf.org/2007/opf" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:olddc="http://purl.org/dc/elements/1.0/">
    <xsl:template match="*">
        <xsl:copy>
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </xsl:copy>
    </xsl:template>
    <!-- Remove deprecated dc-metadata element -->
    <xsl:template match="dc-metadata">
        <xsl:apply-templates/>
    </xsl:template>
    <!-- Convert DC 1.0 to 1.1 -->
    <!-- Fixup broken implementation that doesn't follow Guidelines for implementing Dublin Core in XML -->
    <xsl:template match="dc:Title|olddc:Title|olddc:title">
        <xsl:element name="dc:title">
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>
    <xsl:template match="dc:Language|olddc:Language|olddc:language">
        <xsl:element name="dc:language">
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>
    <xsl:template match="dc:Identifier|olddc:Identifier|olddc:identifier">
        <xsl:element name="dc:identifier">
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>
    <xsl:template match="dc:Creator|olddc:Creator|olddc:creator">
        <xsl:element name="dc:creator">
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>
    <xsl:template match="dc:Subject|olddc:Subject|olddc:subject">
        <xsl:element name="dc:subject">
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>
    <xsl:template match="dc:Description|olddc:Description|olddc:Description">
        <xsl:element name="dc:description">
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>
    <xsl:template match="dc:Publisher|olddc:Publisher|olddc:publisher">
        <xsl:element name="dc:publisher">
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>
    <xsl:template match="dc:Contributor|olddc:Contributor|olddc:contributor">
        <xsl:element name="dc:contributor">
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>
    <xsl:template match="dc:Date|olddc:Date|olddc:date">
        <xsl:element name="dc:date">
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>
    <xsl:template match="dc:Type|olddc:Type|olddc:type">
        <xsl:element name="dc:type">
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>
    <xsl:template match="dc:Format|olddc:Format|olddc:format">
        <xsl:element name="dc:format">
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>
    <xsl:template match="dc:Source|olddc:Source|olddc:source">
        <xsl:element name="dc:source">
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>
    <xsl:template match="dc:Relation|olddc:Relation|olddc:relation">
        <xsl:element name="dc:relation">
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>
    <xsl:template match="dc:Coverage|olddc:Coverage|olddc:coverage">
        <xsl:element name="dc:coverage">
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>
    <xsl:template match="dc:Rights|olddc:Rights|olddc:rights">
        <xsl:element name="dc:rights">
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>
</xsl:stylesheet>
